<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    //  正则规则1 修饰符‘
    var reg = /a/gi
    //   g  执行全局匹配（查找所有匹配而非在找到第一个匹配后停止）。
    //   i	执行对大小写不敏感的匹配。
    // 字符串.match(正则) 匹配字符串中符合规则的字符 存放到数组中
    var str = "afdsaAfadAaAsdfasfasdfAasdf";
    console.log(str.match(reg))
    var reg2 = /^abf$/gi
    var str2 = "abf";
    //   ^ 开头符号
    //  $ 结尾符号
    console.log(reg2.test(str2))
    //3.范围匹配   []
    var reg3 = /[abc][0-9]/
    var str3 = "b8"
    // [abc]			查找方括号之间的任何字符。
    //   [^ abc]查找任何不在方括号之间的字符。
    // [0 - 9]			查找任何从 0 至 9 的数字。
    // [a - z]			查找任何从小写 a 到小写 z 的字符。
    // [A - Z]			查找任何从大写 A 到大写 Z 的字符。
    // 4. 元字符(预定义模式) 
    var reg4 = /^\w\d$/
    var str4 = "a8"
    console.log(reg4.test(str4))
    //   .查找单个字符，除了换行和行结束符。
    // \w  数字 字母 下划线
    // \d  查找数字
    // \s  查找空白符
    // \W  非  数字 字母 下线
    // \D  非数字
    // \S  非 空白符
    // 5.量词
    // var reg5 = /^\w{6,}*$/
    // n + 匹配任何包含至少一个 n 的字符串。	 >= 1
    // n * 匹配任何包含零个或多个 n 的字符串。  >= 0  任意次
    // n ? 匹配任何包含零个或一个 n 的字符串。 0 || 1 
    // n{ x } 匹配包含 X 个 n 的序列的字符串。
    // n{ x,} 至少匹配x次
    // n{ x, y } 至少匹配x次 最多y次

    // 6  () 子表示分组      | 或
    var reg6 = / (\w{3,5}\d{2}) | (\d+\w*[0-9]?) /


  </script>
</body>

</html>